package com.pinyougou.manager.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.pinyougou.common.pojo.PageResult;
import com.pinyougou.pojo.Brand;
import com.pinyougou.service.BrandService;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * 品牌控制器
 *
 * @Author: shilv
 * @Date: Create in 8:45 2019/6/30
 * @Version: 1.0
 */

@RestController
@RequestMapping("/brand")
public class BrandController {
    /**
     *引用服务接口代理对象
     * timeout:调用服务接口方法超时时间
     * */
    @Reference(timeout = 10000)
    private BrandService brandService;

    /** 查询全部品牌 */
    @GetMapping("/findAll")
    public List<Brand> findAll(){
        return brandService.findAll();
    }
    /** 添加品牌 */
    @PostMapping("/save")
    public boolean save(@RequestBody Brand brand ) {
        try {
            brandService.save(brand);
            return true;
        }catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    /** 修改品牌 */
    @PostMapping("/update")
    public boolean update(@RequestBody Brand brand) {
        try {
            brandService.update(brand);
            return true;
        }catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    /** 多条件分页查询品牌 */
    @GetMapping("/findByPage")
    public PageResult findByPage(Brand brand, Integer page,
                                 @RequestParam(defaultValue = "10") Integer rows) {
       /*
       在配置tomcat 7插件的pom文件中增加配置:<uriEncoding>UTF-8</uriEncoding>
       try {
            // Get请求中文转码(tomcat8以上只有post请求才会出现中文乱码问题,过滤器只过滤post请求)
            if (StringUtils.isNoneBlank(brand.getName())){
                brand.setName(new String(brand.getName().getBytes("ISO8859-1"),"UTF-8"));
            }
        }catch (Exception e) {
            e.printStackTrace();
        }*/
        return brandService.findByPage(brand,page,rows);
    }

    /** 查询品牌列表 */
    @GetMapping("/findBrandList")
    public List<Map<String,Object>> findBrandList(){
        return brandService.findAllByIdAndName();
    }

}
